PL/SQL একটি শক্তিশালী প্রোগ্রামিং ভাষা যা object-oriented programming (OOP) ধারণাগুলিকে সমর্থন করে। Oracle Database-এ Object-Oriented PL/SQL ব্যবহার করে আপনি Object Types তৈরি করতে পারেন, যার মধ্যে attributes (বৈশিষ্ট্য) এবং methods (পদ্ধতি) থাকে। এটি OOP এর মূল ধারণা ব্যবহার করে ডেটাবেসের ভিতরে অবজেক্ট মডেল তৈরি করতে সাহায্য করে।
Object Types in PL/SQL
Object Types হল একটি ডেটা টাইপ যা একটি অবজেক্টের বৈশিষ্ট্য এবং আচরণ (অথবা attributes এবং methods) ধারণ করে। একটি object type তৈরি করতে, আপনাকে দুটি প্রধান অংশ তৈরি করতে হয়:
- Specification (স্পেসিফিকেশন): এখানে অবজেক্টের attributes এবং methods ডিফাইন করা হয়।
- Body (বডি): এখানে methods এর বাস্তবায়ন বা লজিক লিখা হয়।
Object Type সাধারণত attributes এবং methods এর সমন্বয়ে গঠিত।
১. Object Attributes (বৈশিষ্ট্য)
Object Attributes হল সেই ডেটা ফিল্ড বা ভ্যালু যা একটি অবজেক্টে সংরক্ষিত থাকে। এটি সাধারণত variables বা fields হিসেবেও পরিচিত, যা অবজেক্টের প্রতিটি instance-এ থাকতে পারে।
Object Attributes-এর উদাহরণ:
ধরা যাক, আপনি একটি Person নামক অবজেক্ট তৈরি করতে চান, যার দুটি attribute থাকবে: name এবং age।
Object Type Specification (স্পেসিফিকেশন):
CREATE OR REPLACE TYPE person AS OBJECT (
name VARCHAR2(50),
age NUMBER
);
এখানে person অবজেক্টের দুটি attribute আছে: name এবং age।
Object Type Body (বডি):
এটি অবজেক্টের কোনো methods বা functionality নির্ধারণ করে।
CREATE OR REPLACE TYPE BODY person AS
MEMBER FUNCTION display_info RETURN VARCHAR2 IS
BEGIN
RETURN 'Name: ' || name || ', Age: ' || age;
END display_info;
END;
এখানে, display_info একটি method যা person অবজেক্টের attributes name এবং age ব্যবহার করে একটি স্ট্রিং আউটপুট প্রদান করবে।
২. Object Methods (পদ্ধতি)
Methods হল অবজেক্টের আচরণ বা কার্যকলাপ। এটি একটি ফাংশন বা প্রক্রিয়া যা অবজেক্টের attribute বা ভ্যালুর সাথে কাজ করে এবং সাধারণত একটি নির্দিষ্ট কাজ সম্পাদন করে। PL/SQL-এ methods কে member functions হিসেবে ডিফাইন করা হয়, যা অবজেক্টের attribute বা অন্যান্য ডেটার সাথে কাজ করে।
Method এর উদাহরণ:
আমরা উপরে যে person অবজেক্টটি তৈরি করেছি, সেখানে একটি display_info method আছে, যা অবজেক্টের name এবং age attribute এর মান প্রদর্শন করবে।
CREATE OR REPLACE TYPE BODY person AS
MEMBER FUNCTION display_info RETURN VARCHAR2 IS
BEGIN
RETURN 'Name: ' || name || ', Age: ' || age;
END display_info;
END;
এখানে, display_info হল একটি method যা name এবং age attribute থেকে তথ্য সংগ্রহ করে এবং একটি স্ট্রিং রিটার্ন করে।
৩. Methods-এ Parameter Pass করা
PL/SQL object methods এ parameters পাঠানো যেতে পারে, এবং তা object-এ stored data বা attributes-এর ভিত্তিতে বিভিন্ন কার্যকলাপ সম্পাদন করতে ব্যবহার করা যায়।
Method with Parameter:
CREATE OR REPLACE TYPE person AS OBJECT (
name VARCHAR2(50),
age NUMBER,
MEMBER FUNCTION greet (greeting VARCHAR2) RETURN VARCHAR2
);
এখানে, greet একটি method যা greeting নামক parameter গ্রহণ করে এবং সেই greeting-এর সাথে অবজেক্টের name attribute মিশিয়ে একটি বার্তা রিটার্ন করবে।
Method Implementation:
CREATE OR REPLACE TYPE BODY person AS
MEMBER FUNCTION greet (greeting VARCHAR2) RETURN VARCHAR2 IS
BEGIN
RETURN greeting || ', ' || name;
END greet;
END;
এখন, আপনি greet method ব্যবহার করে person অবজেক্টের name-এর সাথে একটি custom greeting বার্তা তৈরি করতে পারবেন।
৪. Object Methods ব্যবহার
একবার যখন আপনি একটি object type এবং তার attributes এবং methods তৈরি করবেন, তখন সেই object type-এর instance তৈরি করতে পারবেন এবং methods ব্যবহার করতে পারবেন।
Object Creation এবং Method Call:
DECLARE
p person;
result VARCHAR2(100);
BEGIN
-- Create an instance of the person object
p := person('John Doe', 30);
-- Call the display_info method
result := p.display_info;
-- Print result
DBMS_OUTPUT.PUT_LINE(result); -- Output: Name: John Doe, Age: 30
-- Call the greet method
result := p.greet('Hello');
-- Print result
DBMS_OUTPUT.PUT_LINE(result); -- Output: Hello, John Doe
END;
এখানে:
pএকটিpersonঅবজেক্টের instance।p.display_infomethod অবজেক্টেরnameএবংageattribute এর মান প্রদর্শন করবে।p.greetmethod ব্যবহারকারী-প্রদত্তgreetingসহname-এর মান রিটার্ন করবে।
Object-Oriented PL/SQL এর সুবিধা
- Encapsulation: Attributes এবং Methods একটি অবজেক্টের মধ্যে encapsulate (গোপন) থাকে, যা নিরাপত্তা এবং রিয়ূজেবিলিটি উন্নত করে।
- Code Reusability: আপনি একবার object type তৈরি করলে, সেটি অনেক জায়গায় ব্যবহার করতে পারবেন, ফলে কোডের পুনঃব্যবহারযোগ্যতা বৃদ্ধি পায়।
- Modularity: Object-Oriented PL/SQL প্রোগ্রামিং কোডকে আরও বেশি সংগঠিত এবং মডুলার করে তোলে। এতে এক্সটেনশন এবং রক্ষণাবেক্ষণ সহজ হয়।
- Data Integrity: Object-oriented programming এর মাধ্যমে ডেটার এনক্যাপসুলেশন এবং বিশুদ্ধতা রক্ষা করা যায়।
শেষ কথা
Object-Oriented PL/SQL ব্যবহার করে আপনি শক্তিশালী, পুনঃব্যবহারযোগ্য এবং মডুলার কোড তৈরি করতে পারেন যা ডেটাবেসের ভিতরে বাস্তব বিশ্বে ব্যবহৃত বস্তুসমূহের প্রতিনিধিত্ব করে। Attributes এবং Methods হল এই কোডের দুটি প্রধান অংশ, যা অবজেক্টের গঠন এবং তার আচরণ নির্ধারণ করে। PL/SQL-এর মাধ্যমে OOP পদ্ধতি ব্যবহার করার ফলে আপনি আরও উন্নত এবং নমনীয় ডেটাবেস অ্যাপ্লিকেশন তৈরি করতে পারবেন।
Read more